﻿#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//	int main()
//	{
//		int x;
//		float y;
//
//		// ⽤⼾输⼊ " -13.45e12# 0"
//		scanf("%d", &x);
//		printf("%d\n", x);
//		scanf("%f", &y);
//		printf("%f\n", y);
//		return 0;
//	}
//复习 算出1-1000000之间的自幂数
//#include <stdio.h>
//#include <math.h>
//int main()
//{
//	int i = 0;
//	//计算个数 1本身就是
//
//	for (i = 0; i <= 1000000; i++)
//	{
//		int n = 1;//计算个数 1本身就是
//		int ret = i;
//		while (ret /= 10)
//		{
//			n++;//计算几次幂几位数就是几次幂
//		}
//		int sum = 0;
//		ret = i;//重新赋值
//		while (ret)//判断ret
//		{
//			sum += pow(ret % 10, n);//库函数
//			ret /= 10;//除一次10消一位
//		}
//		if (sum == i)
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}  
//复习:喝饮料问题 一瓶饮料一块钱 每两个空瓶可以换一瓶饮料20块钱最多可以喝多少瓶
//#include <stdio.h>
//int main()
//{
//	int money = 0;
//	scanf("%d", &money);
//	int drink = money;
//	int empty = drink;//20瓶全部喝完
//	while (empty >= 2)
//	{
//		drink += empty / 2;//没两个空瓶换1瓶
//		empty = empty / 2 + empty % 2;//换来的喝完又去换有可能剩下1瓶不够换
//		//drink += empty;
//	}
//	printf("%d", drink);
//	return 0;
//}
//复习:一个10元素的数组排序偶数在前奇数在后面
void bsor(int* p, int s)
{
	int left = 0;
	int ret = 0;
	int right = s - 1;
	while (left < right)
	{
		// 找奇数
		while ((left < right) && *(p + left) % 2 == 0)
		{
			left++;
		}
		//找偶数
		while ((left < right) && *(p + right) % 2 == 1)
		{
			right--;
		}
		if (left < right)
		{
			ret = *(p + left);
			*(p + left) = *(p + right);
			*(p + right) = ret;
		}
	}
}
void print(int *p, int sz)
{
	for (int i = 0; i < sz; i++)
	{
		printf("%d ", *(p + i));
	}
}
#include <stdio.h>
int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	print(arr, sz);
	printf("\n");
	bsor(arr, sz);
	print(arr, sz);
	return 0;
}